//
//  FirstViewController.m
//  07-Block
//
//  Created by 韩旭 on 16/7/22.
//  Copyright © 2016年 lanou. All rights reserved.
//

#import "FirstViewController.h"
#import "SecondViewController.h"

@interface FirstViewController ()<SecondDelegate>
@property (nonatomic, strong) UIButton *btn;

@property (nonatomic, strong) SecondViewController *sce;
@end

@implementation FirstViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationController.navigationBar.barStyle = 0;
    self.btn = [[UIButton alloc] initWithFrame:CGRectMake(50, 150, 50, 50)];
    self.lable = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 50, 50)];
    _lable.backgroundColor = [UIColor greenColor];
    _lable.text = @"你妹";
    _btn.backgroundColor = [UIColor greenColor];
    [self.view addSubview:_lable];
    [self.view addSubview:_btn];
    [_btn addTarget:self action:@selector(pushBtnWith:) forControlEvents:UIControlEventTouchUpInside];
    //    界面通信
    //    1. 属性传值, 一般用于 从前往后传值
    //    将想要传递的值, 作为后一个页面的属性， 并通过该属性进行一系列操作
    //    将FirstViewController的titleLable。text传递给SecondViewController的textFiled
    //    FirstViewCOntroller -> 取到titleLable。text
    //           ⬇️ push   ⬇️ 属性传值
    //    SecondViewController - > titleString -> 去使用titleString做任何事情
    //    从后往前传值（可以, 但是不推荐这样使用）
    //    SecondViewController - > 取到textField.text
    //    ⬇️ pop（获取First的Vc）       ⬇️属性传值
    //    FirstViewController -> 设置 titleTextField -> 去使用
    //    2. 协议传值（delegate）
    //    1. 从后往前传值
    //    Seconde -> First 传值
    //    决定要在Second中声明协议 （最难确定的）
    //    2. 声明delegate @property id<Delegate名> delegate
    //    3. 在哪签订协议(只要拿到对象，就可以签订协议)xxx.delegate = self
    //    4. xxx.delegate = self 会报黄, 没有签订协议，签订协议
    //    5. 签订完协议, 会爆黄因为有必须实现的协议方法为实现
    //    实现协议方法
    //    6. 但是协议方法并没有执行, 缺少触发时机
    //    在哪里触发该协议方法（加上对应判断）

    
    // 3. 关于navgation中控制器的释放
//    navgation中viewController数组, 数组对对像有引用计数+1
//    当controller入栈时, 则被加入数组中, 引用计数+1、
//    只要不出站, 就不会释放
//    A - > push -> B
//    当B -> pop -> A B出栈， 对应释放
}
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:YES];
    NSLog(@"%@", _titleTextFiled);
}
- (void)secondName:(NSString *)name
{
    self.lable.text = name;
}
- (void)pushBtnWith:(UIButton *)btn {
    SecondViewController *sec = [[SecondViewController alloc] init];
    sec.delegate = self;
    sec.string = _lable.text;
    [self.navigationController pushViewController:sec animated:YES];
}
@end
